package ProyectoX;

import javax.swing.ImageIcon;
import javax.swing.JLabel;

/**
 * Clase Tiburon extiende NaveEnemiga
 */
public class Tiburon extends NaveEnemiga {
	
	protected int cont = 0;
	
	/**
	 * Constructor Tiburon
	 * @param n Nivel
	 */
	public Tiburon(Nivel n) {
		super(0,3,1,62,n);
		this.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/Tiburon.gif")));
		velocidad = 3;
	}
	
	/**
	 * Crea un arma enemiga burbuja , la agrega al nivel 
	 * y a la lista de armas enemigas.
	 */
	private void lanzarBurbuja(){
		ArmaEnemiga b = new Burbuja(MiNivel, this);
		int x= (this.getX() + b.getWidth());
		b.setBounds(x, this.getY()+ (this.getIcon().getIconHeight()/2 - 2), b.getIcon().getIconWidth(), b.getIcon().getIconHeight());
		MiNivel.agregarComponente(b);
		MiNivel.obtenerArmasEnemigas().add(b);
	}
	
	/**
	 * Crea un powerup , lo agrega al nivel 
	 * y a la lista de power ups.
	 */
	private void lanzarPowerUp(){
		PowerUp pu = new PowerUp(MiNivel, this);
		int x = (this.getX() - pu.getWidth());
		pu.setBounds(x, this.getY(), pu.getIcon().getIconWidth(), pu.getIcon().getIconHeight());
		MiNivel.agregarComponente(pu);
		MiNivel.obtenerPowerUps().add(pu);
		AutoRemovePowerUp a= new AutoRemovePowerUp(pu, MiNivel.juego.jPanelNivel);
		a.start();
	}
	
	/**
	 * Mueve tiburon 
	 * Si cont es mayor a 110 y esta en pantalla lanza burbuja.
	 */
	public void Mover() {
		Mover(velocidad);
		cont++;
		if( cont > 110){
			if (estaEnPantalla()){
				lanzarBurbuja();
				cont = 0;
			}
		}
	}
	
	/**
	 * Setea tiburon como no visible
	 * y lanza un powerup.
	 * @return puntosAlMorir.
	 */
	public int Morir() {
		
		this.setVisible(false);
		
		JLabel muerto = new JLabel();
		muerto.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/TiburonMuerto.gif")));
		MiNivel.juego.jPanelNivel.add(muerto);
		muerto.setBounds(getX(), getY(), muerto.getIcon().getIconWidth(), muerto.getIcon().getIconHeight());
		AutoRemoveEnem a = new AutoRemoveEnem(muerto, MiNivel.juego.jPanelNivel);
		a.start();
		
		lanzarPowerUp();
		JLabel explosion = new JLabel();
		explosion.setIcon(new ImageIcon(getClass().getClassLoader().getResource("Imagenes/Explosion.gif")));
		MiNivel.juego.jPanelNivel.add(explosion);
		explosion.setBounds(getX(), getY(), explosion.getIcon().getIconWidth(), explosion.getIcon().getIconHeight());
		AutoRemove a2 = new AutoRemove(explosion, MiNivel.juego.jPanelNivel);
		a2.start();
		
		return puntosAlMorir;
	}

}